package com.example.cola.client.facade;

import com.example.cola.client.api.dto.*;

/**
 * 用户门面接口
 * 
 * @author 资深开发专家
 * @version 1.0
 */
public interface UserFacade {
    
    /**
     * 创建用户
     */
    Response<UserDTO> createUser(UserCreateCmd cmd);
    
    /**
     * 更新用户信息
     */
    Response<UserDTO> updateUser(Long userId, UserUpdateCmd cmd);
    
    /**
     * 用户登录
     */
    Response<String> login(UserLoginCmd cmd);
    
    /**
     * 根据ID查询用户
     */
    Response<UserDTO> getUserById(Long userId);
    
    /**
     * 分页查询用户
     */
    Response<PageResult<UserDTO>> queryUsers(UserQuery query);
    
    /**
     * 启用用户
     */
    Response<Void> enableUser(Long userId);
    
    /**
     * 禁用用户
     */
    Response<Void> disableUser(Long userId);
}
